// Generated from E:\sol2bpel\grammar\SOL_Functional.g4 by ANTLR 4.2
package qu.sol2bpel.sol.grammar;
import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.ParseTreeListener;

/**
 * This interface defines a complete listener for a parse tree produced by
 * {@link SOL_FunctionalParser}.
 */
public interface SOL_FunctionalListener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#arglist}.
	 * @param ctx the parse tree
	 */
	void enterArglist(@NotNull SOL_FunctionalParser.ArglistContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#arglist}.
	 * @param ctx the parse tree
	 */
	void exitArglist(@NotNull SOL_FunctionalParser.ArglistContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#atom}.
	 * @param ctx the parse tree
	 */
	void enterAtom(@NotNull SOL_FunctionalParser.AtomContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#atom}.
	 * @param ctx the parse tree
	 */
	void exitAtom(@NotNull SOL_FunctionalParser.AtomContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#and_test}.
	 * @param ctx the parse tree
	 */
	void enterAnd_test(@NotNull SOL_FunctionalParser.And_testContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#and_test}.
	 * @param ctx the parse tree
	 */
	void exitAnd_test(@NotNull SOL_FunctionalParser.And_testContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#yield_stmt}.
	 * @param ctx the parse tree
	 */
	void enterYield_stmt(@NotNull SOL_FunctionalParser.Yield_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#yield_stmt}.
	 * @param ctx the parse tree
	 */
	void exitYield_stmt(@NotNull SOL_FunctionalParser.Yield_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#del_stmt}.
	 * @param ctx the parse tree
	 */
	void enterDel_stmt(@NotNull SOL_FunctionalParser.Del_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#del_stmt}.
	 * @param ctx the parse tree
	 */
	void exitDel_stmt(@NotNull SOL_FunctionalParser.Del_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#test}.
	 * @param ctx the parse tree
	 */
	void enterTest(@NotNull SOL_FunctionalParser.TestContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#test}.
	 * @param ctx the parse tree
	 */
	void exitTest(@NotNull SOL_FunctionalParser.TestContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#protocol_definition}.
	 * @param ctx the parse tree
	 */
	void enterProtocol_definition(@NotNull SOL_FunctionalParser.Protocol_definitionContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#protocol_definition}.
	 * @param ctx the parse tree
	 */
	void exitProtocol_definition(@NotNull SOL_FunctionalParser.Protocol_definitionContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#try_stmt}.
	 * @param ctx the parse tree
	 */
	void enterTry_stmt(@NotNull SOL_FunctionalParser.Try_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#try_stmt}.
	 * @param ctx the parse tree
	 */
	void exitTry_stmt(@NotNull SOL_FunctionalParser.Try_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#file_input}.
	 * @param ctx the parse tree
	 */
	void enterFile_input(@NotNull SOL_FunctionalParser.File_inputContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#file_input}.
	 * @param ctx the parse tree
	 */
	void exitFile_input(@NotNull SOL_FunctionalParser.File_inputContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#comp_if}.
	 * @param ctx the parse tree
	 */
	void enterComp_if(@NotNull SOL_FunctionalParser.Comp_ifContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#comp_if}.
	 * @param ctx the parse tree
	 */
	void exitComp_if(@NotNull SOL_FunctionalParser.Comp_ifContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#testlist_star_expr}.
	 * @param ctx the parse tree
	 */
	void enterTestlist_star_expr(@NotNull SOL_FunctionalParser.Testlist_star_exprContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#testlist_star_expr}.
	 * @param ctx the parse tree
	 */
	void exitTestlist_star_expr(@NotNull SOL_FunctionalParser.Testlist_star_exprContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#import_as_names}.
	 * @param ctx the parse tree
	 */
	void enterImport_as_names(@NotNull SOL_FunctionalParser.Import_as_namesContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#import_as_names}.
	 * @param ctx the parse tree
	 */
	void exitImport_as_names(@NotNull SOL_FunctionalParser.Import_as_namesContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#xor_expr}.
	 * @param ctx the parse tree
	 */
	void enterXor_expr(@NotNull SOL_FunctionalParser.Xor_exprContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#xor_expr}.
	 * @param ctx the parse tree
	 */
	void exitXor_expr(@NotNull SOL_FunctionalParser.Xor_exprContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#setup_stats}.
	 * @param ctx the parse tree
	 */
	void enterSetup_stats(@NotNull SOL_FunctionalParser.Setup_statsContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#setup_stats}.
	 * @param ctx the parse tree
	 */
	void exitSetup_stats(@NotNull SOL_FunctionalParser.Setup_statsContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#shift_expr}.
	 * @param ctx the parse tree
	 */
	void enterShift_expr(@NotNull SOL_FunctionalParser.Shift_exprContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#shift_expr}.
	 * @param ctx the parse tree
	 */
	void exitShift_expr(@NotNull SOL_FunctionalParser.Shift_exprContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#decorated}.
	 * @param ctx the parse tree
	 */
	void enterDecorated(@NotNull SOL_FunctionalParser.DecoratedContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#decorated}.
	 * @param ctx the parse tree
	 */
	void exitDecorated(@NotNull SOL_FunctionalParser.DecoratedContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#parameters}.
	 * @param ctx the parse tree
	 */
	void enterParameters(@NotNull SOL_FunctionalParser.ParametersContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#parameters}.
	 * @param ctx the parse tree
	 */
	void exitParameters(@NotNull SOL_FunctionalParser.ParametersContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#simple_stmt}.
	 * @param ctx the parse tree
	 */
	void enterSimple_stmt(@NotNull SOL_FunctionalParser.Simple_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#simple_stmt}.
	 * @param ctx the parse tree
	 */
	void exitSimple_stmt(@NotNull SOL_FunctionalParser.Simple_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#testlist}.
	 * @param ctx the parse tree
	 */
	void enterTestlist(@NotNull SOL_FunctionalParser.TestlistContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#testlist}.
	 * @param ctx the parse tree
	 */
	void exitTestlist(@NotNull SOL_FunctionalParser.TestlistContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#run_stats}.
	 * @param ctx the parse tree
	 */
	void enterRun_stats(@NotNull SOL_FunctionalParser.Run_statsContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#run_stats}.
	 * @param ctx the parse tree
	 */
	void exitRun_stats(@NotNull SOL_FunctionalParser.Run_statsContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#argument}.
	 * @param ctx the parse tree
	 */
	void enterArgument(@NotNull SOL_FunctionalParser.ArgumentContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#argument}.
	 * @param ctx the parse tree
	 */
	void exitArgument(@NotNull SOL_FunctionalParser.ArgumentContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#funcdef}.
	 * @param ctx the parse tree
	 */
	void enterFuncdef(@NotNull SOL_FunctionalParser.FuncdefContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#funcdef}.
	 * @param ctx the parse tree
	 */
	void exitFuncdef(@NotNull SOL_FunctionalParser.FuncdefContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#Variable}.
	 * @param ctx the parse tree
	 */
	void enterVariable(@NotNull SOL_FunctionalParser.VariableContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#Variable}.
	 * @param ctx the parse tree
	 */
	void exitVariable(@NotNull SOL_FunctionalParser.VariableContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#decorator}.
	 * @param ctx the parse tree
	 */
	void enterDecorator(@NotNull SOL_FunctionalParser.DecoratorContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#decorator}.
	 * @param ctx the parse tree
	 */
	void exitDecorator(@NotNull SOL_FunctionalParser.DecoratorContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#break_stmt}.
	 * @param ctx the parse tree
	 */
	void enterBreak_stmt(@NotNull SOL_FunctionalParser.Break_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#break_stmt}.
	 * @param ctx the parse tree
	 */
	void exitBreak_stmt(@NotNull SOL_FunctionalParser.Break_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#FunctionCall}.
	 * @param ctx the parse tree
	 */
	void enterFunctionCall(@NotNull SOL_FunctionalParser.FunctionCallContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#FunctionCall}.
	 * @param ctx the parse tree
	 */
	void exitFunctionCall(@NotNull SOL_FunctionalParser.FunctionCallContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#import_from}.
	 * @param ctx the parse tree
	 */
	void enterImport_from(@NotNull SOL_FunctionalParser.Import_fromContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#import_from}.
	 * @param ctx the parse tree
	 */
	void exitImport_from(@NotNull SOL_FunctionalParser.Import_fromContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#comparison}.
	 * @param ctx the parse tree
	 */
	void enterComparison(@NotNull SOL_FunctionalParser.ComparisonContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#comparison}.
	 * @param ctx the parse tree
	 */
	void exitComparison(@NotNull SOL_FunctionalParser.ComparisonContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#sliceop}.
	 * @param ctx the parse tree
	 */
	void enterSliceop(@NotNull SOL_FunctionalParser.SliceopContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#sliceop}.
	 * @param ctx the parse tree
	 */
	void exitSliceop(@NotNull SOL_FunctionalParser.SliceopContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#dotted_as_name}.
	 * @param ctx the parse tree
	 */
	void enterDotted_as_name(@NotNull SOL_FunctionalParser.Dotted_as_nameContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#dotted_as_name}.
	 * @param ctx the parse tree
	 */
	void exitDotted_as_name(@NotNull SOL_FunctionalParser.Dotted_as_nameContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#subscript}.
	 * @param ctx the parse tree
	 */
	void enterSubscript(@NotNull SOL_FunctionalParser.SubscriptContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#subscript}.
	 * @param ctx the parse tree
	 */
	void exitSubscript(@NotNull SOL_FunctionalParser.SubscriptContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#map_stmt}.
	 * @param ctx the parse tree
	 */
	void enterMap_stmt(@NotNull SOL_FunctionalParser.Map_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#map_stmt}.
	 * @param ctx the parse tree
	 */
	void exitMap_stmt(@NotNull SOL_FunctionalParser.Map_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#return_stmt}.
	 * @param ctx the parse tree
	 */
	void enterReturn_stmt(@NotNull SOL_FunctionalParser.Return_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#return_stmt}.
	 * @param ctx the parse tree
	 */
	void exitReturn_stmt(@NotNull SOL_FunctionalParser.Return_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#with_stmt}.
	 * @param ctx the parse tree
	 */
	void enterWith_stmt(@NotNull SOL_FunctionalParser.With_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#with_stmt}.
	 * @param ctx the parse tree
	 */
	void exitWith_stmt(@NotNull SOL_FunctionalParser.With_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#stfpdef}.
	 * @param ctx the parse tree
	 */
	void enterStfpdef(@NotNull SOL_FunctionalParser.StfpdefContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#stfpdef}.
	 * @param ctx the parse tree
	 */
	void exitStfpdef(@NotNull SOL_FunctionalParser.StfpdefContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#suite}.
	 * @param ctx the parse tree
	 */
	void enterSuite(@NotNull SOL_FunctionalParser.SuiteContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#suite}.
	 * @param ctx the parse tree
	 */
	void exitSuite(@NotNull SOL_FunctionalParser.SuiteContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#tfpdef}.
	 * @param ctx the parse tree
	 */
	void enterTfpdef(@NotNull SOL_FunctionalParser.TfpdefContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#tfpdef}.
	 * @param ctx the parse tree
	 */
	void exitTfpdef(@NotNull SOL_FunctionalParser.TfpdefContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#continue_stmt}.
	 * @param ctx the parse tree
	 */
	void enterContinue_stmt(@NotNull SOL_FunctionalParser.Continue_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#continue_stmt}.
	 * @param ctx the parse tree
	 */
	void exitContinue_stmt(@NotNull SOL_FunctionalParser.Continue_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#join_stmt}.
	 * @param ctx the parse tree
	 */
	void enterJoin_stmt(@NotNull SOL_FunctionalParser.Join_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#join_stmt}.
	 * @param ctx the parse tree
	 */
	void exitJoin_stmt(@NotNull SOL_FunctionalParser.Join_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#dictorsetmaker}.
	 * @param ctx the parse tree
	 */
	void enterDictorsetmaker(@NotNull SOL_FunctionalParser.DictorsetmakerContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#dictorsetmaker}.
	 * @param ctx the parse tree
	 */
	void exitDictorsetmaker(@NotNull SOL_FunctionalParser.DictorsetmakerContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#dotted_as_names}.
	 * @param ctx the parse tree
	 */
	void enterDotted_as_names(@NotNull SOL_FunctionalParser.Dotted_as_namesContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#dotted_as_names}.
	 * @param ctx the parse tree
	 */
	void exitDotted_as_names(@NotNull SOL_FunctionalParser.Dotted_as_namesContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#trailer}.
	 * @param ctx the parse tree
	 */
	void enterTrailer(@NotNull SOL_FunctionalParser.TrailerContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#trailer}.
	 * @param ctx the parse tree
	 */
	void exitTrailer(@NotNull SOL_FunctionalParser.TrailerContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#Object_FunctionCall}.
	 * @param ctx the parse tree
	 */
	void enterObject_FunctionCall(@NotNull SOL_FunctionalParser.Object_FunctionCallContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#Object_FunctionCall}.
	 * @param ctx the parse tree
	 */
	void exitObject_FunctionCall(@NotNull SOL_FunctionalParser.Object_FunctionCallContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#and_expr}.
	 * @param ctx the parse tree
	 */
	void enterAnd_expr(@NotNull SOL_FunctionalParser.And_exprContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#and_expr}.
	 * @param ctx the parse tree
	 */
	void exitAnd_expr(@NotNull SOL_FunctionalParser.And_exprContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#yield_arg}.
	 * @param ctx the parse tree
	 */
	void enterYield_arg(@NotNull SOL_FunctionalParser.Yield_argContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#yield_arg}.
	 * @param ctx the parse tree
	 */
	void exitYield_arg(@NotNull SOL_FunctionalParser.Yield_argContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#global_stmt}.
	 * @param ctx the parse tree
	 */
	void enterGlobal_stmt(@NotNull SOL_FunctionalParser.Global_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#global_stmt}.
	 * @param ctx the parse tree
	 */
	void exitGlobal_stmt(@NotNull SOL_FunctionalParser.Global_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#with_item}.
	 * @param ctx the parse tree
	 */
	void enterWith_item(@NotNull SOL_FunctionalParser.With_itemContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#with_item}.
	 * @param ctx the parse tree
	 */
	void exitWith_item(@NotNull SOL_FunctionalParser.With_itemContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#or_test}.
	 * @param ctx the parse tree
	 */
	void enterOr_test(@NotNull SOL_FunctionalParser.Or_testContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#or_test}.
	 * @param ctx the parse tree
	 */
	void exitOr_test(@NotNull SOL_FunctionalParser.Or_testContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#expr}.
	 * @param ctx the parse tree
	 */
	void enterExpr(@NotNull SOL_FunctionalParser.ExprContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#expr}.
	 * @param ctx the parse tree
	 */
	void exitExpr(@NotNull SOL_FunctionalParser.ExprContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#testlist_comp}.
	 * @param ctx the parse tree
	 */
	void enterTestlist_comp(@NotNull SOL_FunctionalParser.Testlist_compContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#testlist_comp}.
	 * @param ctx the parse tree
	 */
	void exitTestlist_comp(@NotNull SOL_FunctionalParser.Testlist_compContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#test_nocond}.
	 * @param ctx the parse tree
	 */
	void enterTest_nocond(@NotNull SOL_FunctionalParser.Test_nocondContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#test_nocond}.
	 * @param ctx the parse tree
	 */
	void exitTest_nocond(@NotNull SOL_FunctionalParser.Test_nocondContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#raise_stmt}.
	 * @param ctx the parse tree
	 */
	void enterRaise_stmt(@NotNull SOL_FunctionalParser.Raise_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#raise_stmt}.
	 * @param ctx the parse tree
	 */
	void exitRaise_stmt(@NotNull SOL_FunctionalParser.Raise_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#lambdef_nocond}.
	 * @param ctx the parse tree
	 */
	void enterLambdef_nocond(@NotNull SOL_FunctionalParser.Lambdef_nocondContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#lambdef_nocond}.
	 * @param ctx the parse tree
	 */
	void exitLambdef_nocond(@NotNull SOL_FunctionalParser.Lambdef_nocondContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#varargslist}.
	 * @param ctx the parse tree
	 */
	void enterVarargslist(@NotNull SOL_FunctionalParser.VarargslistContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#varargslist}.
	 * @param ctx the parse tree
	 */
	void exitVarargslist(@NotNull SOL_FunctionalParser.VarargslistContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#import_stmt}.
	 * @param ctx the parse tree
	 */
	void enterImport_stmt(@NotNull SOL_FunctionalParser.Import_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#import_stmt}.
	 * @param ctx the parse tree
	 */
	void exitImport_stmt(@NotNull SOL_FunctionalParser.Import_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#except_clause}.
	 * @param ctx the parse tree
	 */
	void enterExcept_clause(@NotNull SOL_FunctionalParser.Except_clauseContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#except_clause}.
	 * @param ctx the parse tree
	 */
	void exitExcept_clause(@NotNull SOL_FunctionalParser.Except_clauseContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#eval_input}.
	 * @param ctx the parse tree
	 */
	void enterEval_input(@NotNull SOL_FunctionalParser.Eval_inputContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#eval_input}.
	 * @param ctx the parse tree
	 */
	void exitEval_input(@NotNull SOL_FunctionalParser.Eval_inputContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#Raising_ToPower}.
	 * @param ctx the parse tree
	 */
	void enterRaising_ToPower(@NotNull SOL_FunctionalParser.Raising_ToPowerContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#Raising_ToPower}.
	 * @param ctx the parse tree
	 */
	void exitRaising_ToPower(@NotNull SOL_FunctionalParser.Raising_ToPowerContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#decorators}.
	 * @param ctx the parse tree
	 */
	void enterDecorators(@NotNull SOL_FunctionalParser.DecoratorsContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#decorators}.
	 * @param ctx the parse tree
	 */
	void exitDecorators(@NotNull SOL_FunctionalParser.DecoratorsContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#exprlist}.
	 * @param ctx the parse tree
	 */
	void enterExprlist(@NotNull SOL_FunctionalParser.ExprlistContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#exprlist}.
	 * @param ctx the parse tree
	 */
	void exitExprlist(@NotNull SOL_FunctionalParser.ExprlistContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#lambdef}.
	 * @param ctx the parse tree
	 */
	void enterLambdef(@NotNull SOL_FunctionalParser.LambdefContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#lambdef}.
	 * @param ctx the parse tree
	 */
	void exitLambdef(@NotNull SOL_FunctionalParser.LambdefContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#small_stmt}.
	 * @param ctx the parse tree
	 */
	void enterSmall_stmt(@NotNull SOL_FunctionalParser.Small_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#small_stmt}.
	 * @param ctx the parse tree
	 */
	void exitSmall_stmt(@NotNull SOL_FunctionalParser.Small_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#nonlocal_stmt}.
	 * @param ctx the parse tree
	 */
	void enterNonlocal_stmt(@NotNull SOL_FunctionalParser.Nonlocal_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#nonlocal_stmt}.
	 * @param ctx the parse tree
	 */
	void exitNonlocal_stmt(@NotNull SOL_FunctionalParser.Nonlocal_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#comp_op}.
	 * @param ctx the parse tree
	 */
	void enterComp_op(@NotNull SOL_FunctionalParser.Comp_opContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#comp_op}.
	 * @param ctx the parse tree
	 */
	void exitComp_op(@NotNull SOL_FunctionalParser.Comp_opContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#strongtypedargslist}.
	 * @param ctx the parse tree
	 */
	void enterStrongtypedargslist(@NotNull SOL_FunctionalParser.StrongtypedargslistContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#strongtypedargslist}.
	 * @param ctx the parse tree
	 */
	void exitStrongtypedargslist(@NotNull SOL_FunctionalParser.StrongtypedargslistContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#import_as_name}.
	 * @param ctx the parse tree
	 */
	void enterImport_as_name(@NotNull SOL_FunctionalParser.Import_as_nameContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#import_as_name}.
	 * @param ctx the parse tree
	 */
	void exitImport_as_name(@NotNull SOL_FunctionalParser.Import_as_nameContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#comp_iter}.
	 * @param ctx the parse tree
	 */
	void enterComp_iter(@NotNull SOL_FunctionalParser.Comp_iterContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#comp_iter}.
	 * @param ctx the parse tree
	 */
	void exitComp_iter(@NotNull SOL_FunctionalParser.Comp_iterContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#for_stmt}.
	 * @param ctx the parse tree
	 */
	void enterFor_stmt(@NotNull SOL_FunctionalParser.For_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#for_stmt}.
	 * @param ctx the parse tree
	 */
	void exitFor_stmt(@NotNull SOL_FunctionalParser.For_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#arith_expr}.
	 * @param ctx the parse tree
	 */
	void enterArith_expr(@NotNull SOL_FunctionalParser.Arith_exprContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#arith_expr}.
	 * @param ctx the parse tree
	 */
	void exitArith_expr(@NotNull SOL_FunctionalParser.Arith_exprContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#augassign}.
	 * @param ctx the parse tree
	 */
	void enterAugassign(@NotNull SOL_FunctionalParser.AugassignContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#augassign}.
	 * @param ctx the parse tree
	 */
	void exitAugassign(@NotNull SOL_FunctionalParser.AugassignContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#stmt}.
	 * @param ctx the parse tree
	 */
	void enterStmt(@NotNull SOL_FunctionalParser.StmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#stmt}.
	 * @param ctx the parse tree
	 */
	void exitStmt(@NotNull SOL_FunctionalParser.StmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#subscriptlist}.
	 * @param ctx the parse tree
	 */
	void enterSubscriptlist(@NotNull SOL_FunctionalParser.SubscriptlistContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#subscriptlist}.
	 * @param ctx the parse tree
	 */
	void exitSubscriptlist(@NotNull SOL_FunctionalParser.SubscriptlistContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#single_input}.
	 * @param ctx the parse tree
	 */
	void enterSingle_input(@NotNull SOL_FunctionalParser.Single_inputContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#single_input}.
	 * @param ctx the parse tree
	 */
	void exitSingle_input(@NotNull SOL_FunctionalParser.Single_inputContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#assert_stmt}.
	 * @param ctx the parse tree
	 */
	void enterAssert_stmt(@NotNull SOL_FunctionalParser.Assert_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#assert_stmt}.
	 * @param ctx the parse tree
	 */
	void exitAssert_stmt(@NotNull SOL_FunctionalParser.Assert_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#compound_stmt}.
	 * @param ctx the parse tree
	 */
	void enterCompound_stmt(@NotNull SOL_FunctionalParser.Compound_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#compound_stmt}.
	 * @param ctx the parse tree
	 */
	void exitCompound_stmt(@NotNull SOL_FunctionalParser.Compound_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#not_test}.
	 * @param ctx the parse tree
	 */
	void enterNot_test(@NotNull SOL_FunctionalParser.Not_testContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#not_test}.
	 * @param ctx the parse tree
	 */
	void exitNot_test(@NotNull SOL_FunctionalParser.Not_testContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#expr_stmt}.
	 * @param ctx the parse tree
	 */
	void enterExpr_stmt(@NotNull SOL_FunctionalParser.Expr_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#expr_stmt}.
	 * @param ctx the parse tree
	 */
	void exitExpr_stmt(@NotNull SOL_FunctionalParser.Expr_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#functional_section}.
	 * @param ctx the parse tree
	 */
	void enterFunctional_section(@NotNull SOL_FunctionalParser.Functional_sectionContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#functional_section}.
	 * @param ctx the parse tree
	 */
	void exitFunctional_section(@NotNull SOL_FunctionalParser.Functional_sectionContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#factor}.
	 * @param ctx the parse tree
	 */
	void enterFactor(@NotNull SOL_FunctionalParser.FactorContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#factor}.
	 * @param ctx the parse tree
	 */
	void exitFactor(@NotNull SOL_FunctionalParser.FactorContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#encoding_decl}.
	 * @param ctx the parse tree
	 */
	void enterEncoding_decl(@NotNull SOL_FunctionalParser.Encoding_declContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#encoding_decl}.
	 * @param ctx the parse tree
	 */
	void exitEncoding_decl(@NotNull SOL_FunctionalParser.Encoding_declContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#while_stmt}.
	 * @param ctx the parse tree
	 */
	void enterWhile_stmt(@NotNull SOL_FunctionalParser.While_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#while_stmt}.
	 * @param ctx the parse tree
	 */
	void exitWhile_stmt(@NotNull SOL_FunctionalParser.While_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#import_name}.
	 * @param ctx the parse tree
	 */
	void enterImport_name(@NotNull SOL_FunctionalParser.Import_nameContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#import_name}.
	 * @param ctx the parse tree
	 */
	void exitImport_name(@NotNull SOL_FunctionalParser.Import_nameContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#classdef}.
	 * @param ctx the parse tree
	 */
	void enterClassdef(@NotNull SOL_FunctionalParser.ClassdefContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#classdef}.
	 * @param ctx the parse tree
	 */
	void exitClassdef(@NotNull SOL_FunctionalParser.ClassdefContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#pass_stmt}.
	 * @param ctx the parse tree
	 */
	void enterPass_stmt(@NotNull SOL_FunctionalParser.Pass_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#pass_stmt}.
	 * @param ctx the parse tree
	 */
	void exitPass_stmt(@NotNull SOL_FunctionalParser.Pass_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#term}.
	 * @param ctx the parse tree
	 */
	void enterTerm(@NotNull SOL_FunctionalParser.TermContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#term}.
	 * @param ctx the parse tree
	 */
	void exitTerm(@NotNull SOL_FunctionalParser.TermContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#flow_stmt}.
	 * @param ctx the parse tree
	 */
	void enterFlow_stmt(@NotNull SOL_FunctionalParser.Flow_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#flow_stmt}.
	 * @param ctx the parse tree
	 */
	void exitFlow_stmt(@NotNull SOL_FunctionalParser.Flow_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#typedargslist}.
	 * @param ctx the parse tree
	 */
	void enterTypedargslist(@NotNull SOL_FunctionalParser.TypedargslistContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#typedargslist}.
	 * @param ctx the parse tree
	 */
	void exitTypedargslist(@NotNull SOL_FunctionalParser.TypedargslistContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#if_stmt}.
	 * @param ctx the parse tree
	 */
	void enterIf_stmt(@NotNull SOL_FunctionalParser.If_stmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#if_stmt}.
	 * @param ctx the parse tree
	 */
	void exitIf_stmt(@NotNull SOL_FunctionalParser.If_stmtContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#yield_expr}.
	 * @param ctx the parse tree
	 */
	void enterYield_expr(@NotNull SOL_FunctionalParser.Yield_exprContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#yield_expr}.
	 * @param ctx the parse tree
	 */
	void exitYield_expr(@NotNull SOL_FunctionalParser.Yield_exprContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#dotted_name}.
	 * @param ctx the parse tree
	 */
	void enterDotted_name(@NotNull SOL_FunctionalParser.Dotted_nameContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#dotted_name}.
	 * @param ctx the parse tree
	 */
	void exitDotted_name(@NotNull SOL_FunctionalParser.Dotted_nameContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#star_expr}.
	 * @param ctx the parse tree
	 */
	void enterStar_expr(@NotNull SOL_FunctionalParser.Star_exprContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#star_expr}.
	 * @param ctx the parse tree
	 */
	void exitStar_expr(@NotNull SOL_FunctionalParser.Star_exprContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#comp_for}.
	 * @param ctx the parse tree
	 */
	void enterComp_for(@NotNull SOL_FunctionalParser.Comp_forContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#comp_for}.
	 * @param ctx the parse tree
	 */
	void exitComp_for(@NotNull SOL_FunctionalParser.Comp_forContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_FunctionalParser#vfpdef}.
	 * @param ctx the parse tree
	 */
	void enterVfpdef(@NotNull SOL_FunctionalParser.VfpdefContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_FunctionalParser#vfpdef}.
	 * @param ctx the parse tree
	 */
	void exitVfpdef(@NotNull SOL_FunctionalParser.VfpdefContext ctx);
}